A Compile-Time Infrastructure for GCC Using Haskell (extended version)
نویسندگان
چکیده
This project aims to improve the metaprogramming and verification capabilities of the GNU Compiler Collection. It consists of a plugin infrastructure that exposes two compile-time mechanisms. The first of these is a mechanism by which one may perform arbitrary computations over types within the context of the C++ template metaprogramming infrastructure. The second of these exposes selected portions of the control flow graph and basic block statements of Low GIMPLE, with additional support infrastructure that allows for data-flow analysis of the resultant structure. The plugins themselves are written in Haskell, reflecting the functional nature of both C++ template metaprogramming and standard data-flow analysis. We demonstrate the effectiveness of our technique using specific case studies in the field of session types.
منابع مشابه
A Compile-Time Infrastructure for GCC Using Haskell
This project aims to improve the metaprogramming and verification capabilities of the GNU Compiler Collection. It consists of a plugin infrastructure that exposes two compile-time mechanisms. The first of these is a mechanism by which one may perform arbitrary computations over types within the context of the C++ template metaprogramming infrastructure. The second of these exposes selected port...
متن کاملSafe Zero-cost Coercions for Haskell (extended version)
Generative type abstractions – present in Haskell, OCaml, and other languages – are useful concepts to help prevent programmer errors. They serve to create new types that are distinct at compile time but share a run-time representation with some base type. We present a new mechanism that allows for zero-cost conversions between generative type abstractions and their representations, even when s...
متن کاملSafe Zero - cost Coercions for Haskell ( extended version ) 1
Generative type abstractions – present in Haskell, OCaml, and other languages – are useful concepts to help prevent programmer errors. They serve to create new types that are distinct at compile time but share a run-time representation with some base type. We present a new mechanism that allows for zero-cost conversions between generative type abstractions and their representations, even when s...
متن کاملOptimizing real world applications with GCC Link Time Optimization
GCC has a new infrastructure to support a link time optimization (LTO). The infrastructure is designed to allow linking of large applications using a special mode (WHOPR) which support parallelization of the compilation process. In this paper we present overview of the design and implementation of WHOPR and present test results of its behavior when optimizing large applications. We give numbers...
متن کاملSystem FC with Explicit Kind Equality (extended version)
System FC, the core language of the Glasgow Haskell Compiler, is an explicitly-typed variant of System F with first-class type equality proofs called coercions. This extensible proof system forms the foundation for type system extensions such as type families (typelevel functions) and Generalized Algebraic Datatypes (GADTs). Such features, in conjunction with kind polymorphism and datatype prom...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008